/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package hoja4;

/**
 *
 * @author Nery Giron, Adrian Martinez, Maria Fernanda Martinez, Darwin Rivas
 */
import java.util.Vector;

/**
 * 
 * @author Mafer
 * @param <E>
 */
public class StackVector<E>
 extends AbstractStack<E>
{
    /**
     * 
     */
    protected Vector<E> data;
    
    /**
     * Nombre: StackVector
     * Descipción: Constructor de la clase
     * No tiene parámetro ni valor de retorno
     * Pre: no hay
     * Post: nuevo Vector vacio
     */
    public StackVector()
    {
        data = new Vector<>();
    }
    
    /**
     * Nombre: push
     * Descripcion: agrega un objeto a la pila
     * Pre: espacio disponible
     * Post: item agregado a la pila
     * @param item de tipo E
     * Valor de retorno: ninguno
     */
    @Override
    public void push(E item)
    {
        data.add(item);
    }
    
    /**
     * Nombre: pop
     * Descripcion: el objeto que entro de ultimo a la pila es retirado de ella
     * Pre: hay item en la pila
     * Post: item removido de la pila
     * Parametros: ninguno
     * @return valor tipo E
     */
    @Override
    public E pop()
    {
        return data.remove(size()-1);
    }
    
    /**
     * Nombre: peek
     * Descripcion: muestra el ultimo valor que ingreso a la pila
     * Pre: hay item en la pila
     * Post: muestra ultimo item agregado a la pila
     * Parametros: ninguno
     * @return valor tipo E
     */
    @Override
    public E peek()
    {
        return data.get(size() - 1);
    }
    	
    /**
     * Nombre: size
     * Descripcion: obtiene la cantidad de elementos presentes en la pila
     * Pre: ninguno
     * Post: regresa la cantidad de elementos en la pila
     * Parametros: ninguno
     * @return valor tipo int
     */
    @Override
    public int size()
    {
        return data.size();
    }
    
    /**
     * Nombre: clear
     * Descripcion: saca todos los elementos de la pila
     * Pre: ninguno
     * Post: pila vacia
     * Parametros: ninguno
     * Valor de retorno: ninguno
     */
    @Override
    public void clear(){
        data.clear();
    }
}